home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / aijournl / 1986_10 / expert1.ltg < prev    next >
Text File  |  1986-10-30  |  5KB  |  223 lines

  1.  
  2.  
  3.  
  4. Listing 1.  
  5. A sample ATN.
  6.  
  7.  
  8.  
  9. (DEFNODE S  ; sentence
  10.  (PUSH NP T S-VP
  11.        (SETR SUBJ *VALUE*)))
  12.  
  13. (DEFNODE S-VP
  14.  (PUSH VP T S-END
  15.        (SETR PRED *VALUE*)))
  16.  
  17. (DEFNODE S-END
  18.  (POP (S-VALUE (GETR SUBJ) (GETR PRED)) T))
  19.  
  20. ;;;;;
  21.   
  22. (DEFNODE NP  ; noun phrase
  23.  (WRD WHO T NP-REL-OR-PP  ; If the NP starts with "who", 
  24.       (SETR HEAD 'EMPLOYEES))  ; the subject must be employees.
  25.  (CAT WH T NP-HEAD)  ; e.g. what, which
  26.  (CAT QUANT T NP-HEAD)  ; e.g. all
  27.  (JUMP NP-NUM T))
  28.  
  29.  
  30. (DEFNODE NP-NUM
  31.  (TEST (NUMBERP *WORD*) NP-HEAD
  32.        (SETR NUMBER *WORD*))
  33.  (JUMP NP-HEAD T))
  34.  
  35. (DEFNODE NP-HEAD  ; "head" of NP; i.e., main noun
  36.  (CAT N T NP-REL-OR-PP
  37.       (SETR HEAD *WORD*))
  38.  (TEST (OR (IS-EMPLOYEE *WORD*) (IS-DEPARTMENT *WORD*)) NP-REL-OR-PP
  39.        (SETR HEAD *WORD*)))
  40.  
  41. (DEFNODE NP-REL-OR-PP  ; relative clause, pp, or compar. cl.
  42.  (PUSH REL-CLAUSE T NP-END
  43.        (SETR MODIFIERS *VALUE*))
  44.  (PUSH PP T NP-END
  45.        (SETR MODIFIERS *VALUE*))
  46.  (PUSH COMPAR-CLAUSE T NP-END
  47.        (SETR MODIFIERS *VALUE*))
  48.  (JUMP NP-END T))
  49.  
  50. (DEFNODE NP-END
  51.  (POP (NP-VALUE (GETR HEAD) (GETR NUMBER) (GETR MODIFIERS)) T))
  52.  
  53. ;;;;;
  54.  
  55. (DEFNODE REL-CLAUSE  ; relative clause
  56.  (CAT POSS-COMP T RC-POSS)  ; e.g. whose
  57.  (CAT COMP T RC-COMP))  ; e.g. who, that
  58.  
  59. (DEFNODE RC-POSS  ; possessive relative clause
  60.  (PUSH S T RC-END
  61.        (SETR VAL *VALUE*)))
  62.  
  63. (DEFNODE RC-COMP
  64.  (PUSH VP T RC-END
  65.        (SETR VAL *VALUE*)))
  66.  
  67. (DEFNODE RC-END
  68.  (POP (RC-VALUE (GETR VAL)) T))
  69.  
  70. ;;;;;
  71.  
  72. (DEFNODE PP  ; prepositional phrase
  73.  (CAT PREP T PP-HEAD
  74.       (SETR PREP (GET *WORD* 'TRANS))))
  75.  
  76.  
  77. (DEFNODE PP-HEAD
  78.  (PUSH NP T PP-END
  79.        (SETR HEAD *VALUE*))
  80.  (PUSH COMPAR-CLAUSE T PP-END
  81.        (SETR COMP *VALUE*)))
  82.  
  83. (DEFNODE PP-END
  84.  (POP (PP-VALUE (GETR PREP) (GETR HEAD) (GETR COMP)) T))
  85.  
  86. ;;;;;
  87.  
  88. (DEFNODE COMPAR-CLAUSE  ; comparative clause
  89.  (CAT COMPAR-TO T CC-TO
  90.       (SETR COMP (GET *WORD* 'TRANS)))
  91.  (CAT COMPAR-THAN T CC-THAN
  92.       (SETR COMP (GET *WORD* 'TRANS)))
  93.  (CAT COMPAR T CC-HEAD
  94.       (SETR COMP (GET *WORD* 'TRANS))))
  95.  
  96. (DEFNODE CC-TO
  97.  (WRD TO T CC-HEAD))
  98.  
  99. (DEFNODE CC-THAN
  100.  (WRD THAN T CC-HEAD))
  101.  
  102. (DEFNODE CC-HEAD
  103.  (PUSH NP T CC-END
  104.        (SETR HEAD *VALUE*)))
  105.  
  106. (DEFNODE CC-END
  107.  (POP (CC-VALUE (GETR COMP) (GETR HEAD)) T))
  108.  
  109. ;;;;;
  110.  
  111. (DEFNODE VP  ; verb phrase
  112.  (CAT V T VP-V
  113.       (SETR VERB *WORD*)))
  114.  
  115. (DEFNODE VP-V
  116.  (PUSH NP T VP-END  ; For transitive verbs
  117.        (SETR OBJ *VALUE*))
  118.  (JUMP VP-PP T))  ; For instransitive verbs
  119.  
  120. (DEFNODE VP-PP
  121.  (PUSH PP T VP-END
  122.        (SETR PP *VALUE*))
  123.  (PUSH COMPAR-CLAUSE T VP-END
  124.        (SETR PP *VALUE*))
  125.  (JUMP VP-END T))
  126.  
  127. (DEFNODE VP-END
  128.  (POP (VP-VALUE (GETR VERB) (GETR OBJ) (GETR PP)) T))
  129.  
  130.  
  131. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  132. ;;; Auxiliary functions.
  133.  
  134. (SETQ *EMPLOYEES* '(JONES SMITH))
  135. (SETQ *DEPARTMENTS* '(SALES PR))
  136.  
  137. (DEFUN IS-EMPLOYEE (WORD)  ; These functions are used in TEST
  138.   (MEMBER WORD *EMPLOYEES*))  ; arcs, rather than make EMPLOYEE
  139.   ; and DEPARTMENT separate grammatical
  140. (DEFUN IS-DEPARTMENT (WORD)  ; categories!
  141.   (MEMBER WORD *DEPARTMENTS*))
  142.  
  143. ;;; The following routines try to construct a structure based on the
  144. ;;; meaning of the input sentence.
  145.  
  146. (DEFUN VP-VALUE (VERB OBJ PP)
  147.   ;; Try to put together a reasonable structure based on the main verb.
  148.   (CASE VERB
  149.     ((MAKE MAKES)  ; salary question
  150.      `(WITH SALARY (,(FIRST PP) ,(SECOND PP))))
  151.     ((WORK WORKS)  ; in which department
  152.      `(WITH DEPARTMENT ,(SECOND PP)))
  153.     ((HAVE HAS ARE IS)  ; dummies
  154.      (IF OBJ
  155.  (LIST 'WITH OBJ)
  156.  PP))
  157.     (OTHERWISE
  158.      (LIST VERB OBJ PP))))
  159.  
  160. (DEFUN NP-VALUE (HEAD NUMBER MODIFIERS)
  161.   (LET ((MODIFIERS (IF NUMBER
  162.        (CONS `(NUMBER ,NUMBER) MODIFIERS)
  163.        MODIFIERS)))
  164.     (IF MODIFIERS
  165. (CONS HEAD MODIFIERS)
  166. HEAD)))
  167.  
  168. (DEFUN S-VALUE (SUBJ PRED)
  169.   (COND
  170.     ((NULL SUBJ)
  171.      PRED)
  172.     ((SYMBOLP SUBJ)
  173.      (LIST SUBJ PRED))
  174.     (T
  175.      (CONS (CAR SUBJ) (APPEND (CDR SUBJ) (LIST PRED))))))
  176.  
  177. (DEFUN RC-VALUE (VAL)
  178.   (IF (NOT (EQ (CAR VAL) 'WITH))
  179.       (LIST 'WITH VAL)
  180.       VAL))
  181.  
  182. (DEFUN CC-VALUE (COMP HEAD)
  183.   (LIST COMP HEAD))
  184.  
  185. (DEFUN PP-VALUE (PREP HEAD COMP)
  186.   (IF (NULL HEAD)
  187.       (LIST PREP COMP)
  188.       (LIST PREP HEAD)))
  189.   
  190. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  191. ;;; Words.  The "trans" property is used in some cases to translate
  192. ;;; words into a standard vocabulary.
  193.  
  194. (WORD ALL (CAT QUANT))
  195. (WORD EMPLOYEE (CAT N))
  196. (WORD EMPLOYEES (CAT N))
  197. (WORD DEPARTMENT (CAT N))
  198. (WORD DEPARTMENTS (CAT N))
  199. (WORD SALARY (CAT N))
  200. (WORD SALARIES (CAT N))
  201. (WORD DOLLARS (CAT N))
  202. (WORD WHOSE (CAT POSS-COMP))
  203. (WORD LESS (CAT COMPAR-THAN)  (TRANS LESS-THAN))
  204. (WORD FEWER (CAT COMPAR-THAN) (TRANS LESS-THAN))
  205. (WORD MORE (CAT COMPAR-THAN)  (TRANS GREATER-THAN))
  206. (WORD EQUAL (CAT COMPAR-TO)   (TRANS EQUAL-TO)) 
  207. (WORD OVER (CAT COMPAR)       (TRANS GREATER-THAN))
  208. (WORD UNDER (CAT COMPAR)      (TRANS LESS-THAN))
  209. (WORD WHICH (CAT WH))
  210. (WORD WHAT (CAT WH))
  211. (WORD HAS (CAT V))
  212. (WORD HAVE (CAT V))
  213. (WORD IS (CAT V))
  214. (WORD ARE (CAT V))
  215. (WORD MAKE (CAT V))
  216. (WORD MAKES (CAT V))
  217. (WORD WORK (CAT V))
  218. (WORD WORKS (CAT V))
  219. (WORD WHO (CAT COMP))
  220. (WORD THAT (CAT COMP))
  221. (WORD IN (CAT PREP)    (TRANS IN))
  222. (WORD WITH (CAT PREP)  (TRANS WITH))
  223.